﻿/*
 * Created by SharpDevelop.
 * User: alulab11
 * Date: 25/11/2011
 * Time: 03:47 p.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;
using Business_Entity;


namespace DAOFactory
{
	/// <summary>
	/// Description of DAOValores.
	/// </summary>
	public class DAOValores
	{
		public DAOValores()
		{
		}
		public void insertarDBEspecies(String especie)
		{
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_REGISTRAR_ESPECIE_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = especie;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				//MessageBox.Show(ex.Message);
			}
		}
		public void insertarDBRazas(String Raza,int especie)
		{
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_REGISTRAR_RAZA_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@CODIGORAZA", SqlDbType.Int);
				cmd.Parameters["@CODIGORAZA"].Value = especie;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = Raza;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				//MessageBox.Show(ex.Message);
			}
		}
		public void insertarDBTipoProducto(String tproducto){
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_REGISTRAR_TIPO_PRODUCTO_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = tproducto;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				//MessageBox.Show(ex.Message);
			}
		}
		public void insertarDBTipoServicio(String tservicio){
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_REGISTRAR_TIPO_SERVICIO_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = tservicio;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				//MessageBox.Show(ex.Message);
			}
		}
		public void insertarDBTasas(BETasaCambio be){
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_REGISTRAR_TASA_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@VALORC", SqlDbType.Float);
				cmd.Parameters["@VALORC"].Value = be.Compra;
				cmd.Parameters.Add("@VALORV", SqlDbType.Float);
				cmd.Parameters["@VALORV"].Value = be.Venta;
				cmd.Parameters.Add("@FECHA", SqlDbType.DateTime);
				cmd.Parameters["@FECHA"].Value = be.Fecha;
				
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				//MessageBox.Show(ex.Message);
			}
		}
		public void eliminarDBRazas(int idraza){
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_ELIMINAR_RAZA_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@CODIGORAZA", SqlDbType.Int);
				cmd.Parameters["@CODIGORAZA"].Value = idraza;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				MessageBox.Show("No puede eliminar esta Raza porque hay Productos relacionados a este");
			}
		}
		public void eliminarDBEspecies(int idespecie){
			
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_ELIMINAR_ESPECIE_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@CODIGOESPECIE", SqlDbType.Int);
				cmd.Parameters["@CODIGOESPECIE"].Value = idespecie;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				MessageBox.Show("No puede eliminar esta Especie porque hay Razas relacionados a este");
			}	
		}
		public void eliminarDBTipoProductos(int tprod){
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_ELIMINAR_TIPO_PRODUCTO_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@CODIGO", SqlDbType.Int);
				cmd.Parameters["@CODIGO"].Value = tprod;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				MessageBox.Show("No puede eliminar este Tipo de Producto porque hay Productos relacionados a este");
			}	
		}
		public void eliminarDBTipoServicios(int tserv){
			try{
				SqlCommand cmd = new SqlCommand("CONFIGURACION_ELIMINAR_TIPO_SERVICIO_M", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@CODIGO", SqlDbType.Int);
				cmd.Parameters["@CODIGO"].Value = tserv;
				cmd.ExecuteNonQuery();
			}catch(Exception ex){
				MessageBox.Show("No puede eliminar este Tipo de Servicio porque hay Servicios relacionados a este");
			}	
		}
		public List<String[]> getDBListaTipoProductos(String nombre){
			try{
				List<String[]> lstTipoProductos=new List<string[]>();
        		SqlCommand cmd = new SqlCommand("CONFIGURACION_BUSCAR_TIPO_PRODUCTOS_M", ConnectionManager.getConnection());
        		cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = nombre;
				SqlDataReader amd = cmd.ExecuteReader();	
				while (amd.Read()){
					String []cadena=new string[2];
					cadena[0]=amd[0].ToString();
					cadena[1]=amd[1].ToString();
					lstTipoProductos.Add(cadena);
				}
				amd.Close();
				return lstTipoProductos;
        	}
        	catch {
        		//MessageBox.Show("Error al conectar a base de datos. Comunicarse con Sistemas","Error");
        		return null;
        	}
			
			
			return null;
		}
		public List<String[]> getDBListaTipoServicios(String nombre){
			try{
				List<String[]> lstTipoServicios=new List<string[]>();
        		SqlCommand cmd = new SqlCommand("CONFIGURACION_BUSCAR_TIPO_SERVICIOS_M", ConnectionManager.getConnection());
        		cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = nombre;
				SqlDataReader amd = cmd.ExecuteReader();	
				while (amd.Read()){
					String []cadena=new string[2];
					cadena[0]=amd[0].ToString();
					cadena[1]=amd[1].ToString();
					lstTipoServicios.Add(cadena);
				}
				amd.Close();
				return lstTipoServicios;
        	}
        	catch {
        		//MessageBox.Show("Error al conectar a base de datos. Comunicarse con Sistemas","Error");
        		return null;
        	}
			
			
			return null;
		}
		public List<String[]> getDBListaEspecies(String especie){
			try{
				List<String[]> lstEspecies=new List<string[]>();
        		SqlCommand cmd = new SqlCommand("CONFIGURACION_BUSCAR_ESPECIES_M", ConnectionManager.getConnection());
        		cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = especie;
				SqlDataReader amd = cmd.ExecuteReader();	
				while (amd.Read()){
					String []cadena=new string[2];
					cadena[0]=amd[0].ToString();
					cadena[1]=amd[1].ToString();
					lstEspecies.Add(cadena);
				}
				amd.Close();
				return lstEspecies;
        	}
        	catch {
        		//MessageBox.Show("Error al conectar a base de datos. Comunicarse con Sistemas","Error");
        		return null;
        	}
			
			
			return null;
		}
		public List<String[]> getDBListaRazas(int id,String Especie){
			try{
				List<String[]> lstRazas=new List<string[]>();
        		SqlCommand cmd = new SqlCommand("CONFIGURACION_BUSCAR_RAZAS_M", ConnectionManager.getConnection());
        		cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 20);
				cmd.Parameters["@NOMBRE"].Value = Especie;
				cmd.Parameters.Add("@CODIGO", SqlDbType.Int);
				cmd.Parameters["@CODIGO"].Value = id;
				
				SqlDataReader amd = cmd.ExecuteReader();	
				while (amd.Read()){
					String []cadena=new string[2];
					cadena[0]=amd[0].ToString();
					cadena[1]=amd[1].ToString();
					lstRazas.Add(cadena);
				}
				amd.Close();
				return lstRazas;
        	}
        	catch {
        		//MessageBox.Show("Error al conectar a base de datos. Comunicarse con Sistemas","Error");
        		return null;
        	}
			
			
			return null;
		}
		public List<BETasaCambio> getDBListaTasaCambio(DateTime dia,String cad){
			try{
				List<BETasaCambio> lstTasas=new List<BETasaCambio>();
        		SqlCommand cmd = new SqlCommand("CONFIGURACION_BUSCAR_TASA_CAMBIO_M", ConnectionManager.getConnection());
        		cmd.CommandType = CommandType.StoredProcedure;
				cmd.Parameters.Add("@FECHA", SqlDbType.DateTime);
				cmd.Parameters["@FECHA"].Value = dia;
				cmd.Parameters.Add("@VERIFICADOR", SqlDbType.VarChar,1);
				cmd.Parameters["@VERIFICADOR"].Value=cad ;
				SqlDataReader amd = cmd.ExecuteReader();
				
				while (amd.Read()){
					BETasaCambio betasa=new BETasaCambio();
					betasa.Fecha=(DateTime)amd[0];
					float num=float.Parse(amd[1].ToString());
					betasa.Compra=num;
					betasa.Venta=float.Parse(amd[2].ToString());
					betasa.Moneda=amd[3].ToString();
					lstTasas.Add(betasa);
				}
				amd.Close();
				return lstTasas;
        	}
			catch(Exception ex) {
        		//MessageBox.Show("Error al conectar a base de datos. Comunicarse con Sistemas","Error");
        		MessageBox.Show(""+ex.Message);
        		return null;
        	}
			
			
			return null;
		}
	}
}
